package com.yjz.ui.tab.common;

import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import java.util.List;

/**
 * 作用 :
 * 作者 : yjz
 * 时间 : 2024/9/18 11:41
 */
public interface ITabLayout<Tab extends ViewGroup, D> {
    /**
     * 更具数据查找Tab
     */
    Tab findTab(@NonNull D data);

    /**
     * 添加tab监听
     */
    void addTabSelectChangeListener(OnTabSelectedListener<D> listener);

    /**
     * 默认选中那个tab
     */
    void defaultSelected(@NonNull D defaultInfo);

    /**
     * 初始化
     */
    void inflateInfo(@NonNull List<D> infoList);

    interface OnTabSelectedListener<D> {
        void onTabSelectedChange(int index, @Nullable D preInfo, @Nullable D nextInfo);
    }
}
